<?php

interface Workset_Model_Value_Form_Interface extends Workset_Model_Value_Type_Interface {

    const T_SELECT = 'select';

    const REQUIRED = 1;
	const NOT_REQUIRED = 0;
	const CONDITIONAL_REQUIRED = 2;

	/**
	 * Объект содержит предустановленный список значений
	 *
	 * @abstract
	 * @return bool
	 */
	function isEnum();

	/**
	 * Объект содержит множество значений
	 *
	 * @abstract
	 * @return bool
	 */
	function isMultiple();


    /**
     * Объект содержит произвольный список значений
     *
     * @abstract
     * @return void
     */
    function isSelect();

    /**
     * Вводимое значение является обязательным
     *
     * @abstract
     * @return bool
     */
    function isRequired($level = null);

    /**
     * Возвращает строковый id для элемента html-страницы
     *
     * @abstract
     * @return string
     */
    function getHtmlId($prefix = null, $postfix = null);

    /**
     * Возвращает id объекта модели 
     *
     * @abstract
     * @return mixed
     */
    function getModelId();

    /**
     * Возвращает значение объекта
     *
     * @abstract
     * @return mixed
     */
    function getValue();

    /**
     * Возвращает значение объекта по умолчанию
     *
     * @abstract
     * @return mixed
     */
    function getDefaultValue();

    /**
     * Возвращает имя объекта
     *
     * @abstract
     * @return string
     */
    function getName();

    /**
     * Возвращает список предустановленных значений, которые может содержать объект
     *
     * @abstract
     * @return mixed
     */
    function getEnumItems();


    /**
     * Выводит значение
     *
     * @abstract
     * @param  $content
     * @return string
     */
    function render($content = null);



}

?>